package com.ef.dao;

import java.util.Date;
import java.util.List;

import com.ef.constant.EClassType;
import com.ef.constant.ETimeline;
import com.ef.domain.ClassEntity;
import com.ef.domain.Leads;
import com.ef.domain.LeadsClassEntity;
import com.ef.web.domain.TimeCourseCount;
import com.ef.web.domain.TodayCourseCount;

public interface LeadsClassEntityDao extends Dao<LeadsClassEntity> {
	/**
	 * 获取已经预订了该课程的leads 的订课列表
	 * @param classEntity
	 * @return
	 */
	public List<LeadsClassEntity> getLeadsClassEntityListWithClassEntity(
			ClassEntity classEntity);

	public List<LeadsClassEntity> getLeadsClassEntityListWithClassEntityOrderByElitCard(
			ClassEntity classEntity);
	 
 	public List<LeadsClassEntity> getLeadsClassEntityListOrderByBookingTime(int year, int week,
			Leads leads);
	
 	public List<LeadsClassEntity> getLeadsClassEntityListOrderByBookingTime(Leads leads,int num);
 	
	public  boolean  leadsHasThisClassEntity(Long classEntityid, Long leadsid)  ;
	
	public LeadsClassEntity getLeadsClassEntityWithClassEntity(Long classEntityid, Long leadsid)  ;
	
	public List<LeadsClassEntity>  getLeadsClassEntityList(Leads leads,int max);
	
	/**
	 * 统计当天的课程情况
	 * @param today
	 * @return
	 */
	public TodayCourseCount countTodayCourseInfo(Date today);
	
	public TodayCourseCount countTodaySpecialCourseInfo(Date today,EClassType type);
	
	public TimeCourseCount countByTimeTeacher(Date today,ETimeline classTime);
	
	public TimeCourseCount countStudentsByTime(Date today ,ETimeline classTime);
}
